Regarding your first paragraph, no, OP does want @MainActor here. @MainActor means that all updates to the object will occur in the main thread. Any networking called within the @MainActor object can still take place in different threads, and the downloads themselves can take place somewhere else. Using @MainActor means their content will be delivered to the main thread, which is what you want with code that updates the UI. It does not mean async calls will take place in the main actor.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: